package com.kkd.springcloud.service;

import com.kkd.springcloud.pojo.Dept;
import feign.hystrix.FallbackFactory;
import org.springframework.stereotype.Component;

import java.util.List;

/**
 * @author 14587
 * @date 2021/1/18 11:55
 */
//这个factory就是用来降级的，如果服务器停了，就会找到这里降级然后提供信息给客户端
@Component//注册到spring
public class DeptClientServiceFallbackFactory implements FallbackFactory {
    public Object create(Throwable throwable) {
        //这里我们返回的是一个服务，整个服务下的所有操作都要反馈，因为是一个服务端没了，服务端就是provider的服务
        return new DeptClientService() {
            public Dept queryDeptById(Long id) {
                return new Dept().setDeptno(id)
                        .setDname("id=>"+id+"没有对应的信息，客户端提供了降级信息，这个服务被关闭")
                        .setDb_source("没有对应的数据库");
            }

            public List<Dept> queryDepts() {
                return null;
            }

            public int addDept(Dept dept) {
                return 0;
            }
        };
    }
}
